package com.d4peng.test.utils;

import java.lang.reflect.Field;
import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;

/**
 * 反射工具类
 *
 * @author d4peng
 * @date 2021-11-26
 */
public class ReflectUtils {
    /**
     * 通过class获得所有的类的字段信息
     *
     * @param clz 类
     * @return 字段数组
     */
    public static List<Field> getFieldsByClass(Class<?> clz) {
        Field[] fields = clz.getDeclaredFields();
        List<Field> result = new LinkedList<Field>(Arrays.asList(fields));
        for (clz = clz.getSuperclass(); clz != Object.class; clz = clz.getSuperclass()) {
            fields = clz.getDeclaredFields();
            result.addAll(Arrays.asList(fields));
        }
        return result;
    }
}
